package com.hu.bgp.client.gin;

import com.google.gwt.core.client.GWT;
import com.google.gwt.inject.client.AbstractGinModule;
import com.google.inject.Singleton;

import com.hu.bgp.client.EventBus;
import com.hu.bgp.client.rpc.BgpServiceAsync;
import com.hu.bgp.client.view.*;

import de.novanic.eventservice.client.event.RemoteEventService;

/**
 * @author mklijn
 *	Gin dependency injection class Bindings
 */
public class BgpGinModule extends AbstractGinModule
{
	
	@Override
	protected void configure()
	{
		bind(EventBus.class).in(Singleton.class);
		bind(BgpServiceAsync.class).toProvider(BgpServiceProvider.class);
		bind(RemoteEventService.class).toProvider(RemoteEventServiceProvider.class).in(Singleton.class);

		bind(com.hu.bgp.client.presenter.GameTypes.Display.class).to(GameTypes.class);
		bind(com.hu.bgp.client.presenter.GameSessions.Display.class).to(GameSessions.class);
		bind(com.hu.bgp.client.presenter.Boardgame.Display.class).to(Boardgame.class);
	}

}
